home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Collection of Tools & Utilities
/
Collection of Tools and Utilities.iso
/
system
/
ifp1s158.zip
/
PAGE_18.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
1993-08-27
|
53KB
|
1,997 lines
unit page_18;
interface
uses crt, dos, ifpextrn, ifpglobl, ifpcomon;
procedure page18;
implementation
procedure page18;
var
i : 1..63;
s: string;
xlong: longint;
SaveX, Savey: byte;
procedure Shells;
var
xword1: word;
regs: registers;
begin
Caption1('----Shells and Shell enhancers----');
Writeln;
Caption2('JP Software 4DOS');
with regs do
begin
AX:=$D44D;
BX:=0;
CX:=0;
DX:=0;
Intr($2F, regs);
if AX <> $44DD then
Writeln('no')
else
begin
Writeln('yes');
Caption3('version');
xword1:=BH;
Write(BL, decimal);
ZeroPad(xword1);
Caption3('shell no.');
Write(DL);
Caption3('PSP segment');
Writeln(Hex(CX, 4))
end;
end;
Pause3(-1);
if endit then
Exit;
Caption2('JP Software KSTACK.COM');
with regs do
begin
AX:=$D44F;
BX:=0;
CX:=0;
DX:=0;
Intr($2F, regs);
yesorno(AX = $44DD);
end;
Pause3(-2);
if endit then
Exit;
Caption2('Norton NDOS');
with regs do
begin
AX:=$E44D;
BX:=0;
CX:=0;
DX:=0;
Intr($2F, regs);
if AX <> $44EE then
Writeln('no')
else
begin
Writeln('yes');
Caption3('version');
xword1:=BH;
Write(BL, decimal);
ZeroPad(xword1);
Caption3('shell no.');
Write(DL);
Caption3('PSP segment');
Writeln(Hex(CX, 4))
end;
end;
Pause3(-1);
if endit then
Exit;
Caption2('WildUnix');
with regs do
begin
AH:=$4E;
DS:=0;
DX:=0;
MsDos(regs);
yesorno(AH = $99);
end;
Pause3(-1);
if endit then
Exit;
Caption2('Anarkey');
with regs do
begin
AX:=$E300;
Intr($2F, regs);
case AL of
$00: Writeln('no');
$FE: Writeln('yes; but suspended');
$FF: Writeln('yes; and active');
else
Writeln('???')
end
end;
end; {Shells}
procedure DosExtenders;
var
xbool1: boolean;
xbyte: byte;
begin
Pause3(-1);
if endit then
Exit;
Caption1('----DOS Extenders----');
Writeln;
Caption2('DOS/16M');
with regs do
begin
AX:=$BF02;
DX:=0;
Intr($15, regs);
yesorno(DX <> 0);
end;
Pause3(-4);
if endit then
Exit;
Caption2('Phar Lap DOS Extender');
xbool1:=false;
xbyte:=1;
with regs do
repeat
AX:=$ED00;
BL:=xbyte;
Intr($2F, regs);
if (AL = $FF) and (SI = $5048 {PH}) and (DI = $4152 {AR}) then
begin
xbool1:=true;
Write('yes');
Caption3('type');
case xbyte of
1: Write('286dosx v1.3+ SDK');
2: Write('286dosx v1.3+ RTK');
3: Write('386dosx v4.0+ SDK');
4: Write('386dosx v4.0+ RTK')
end;
Caption3('version');
Write(CH, decimal);
ZeroPad(CL);
end;
Inc(xbyte);
until xbyte > 4;
if not xbool1 then
Writeln('no');
end; {DosExtenders}
procedure MemUtils;
type
T386maxbuf = record
version: byte;
signature: array[1..6] of char;
verstr: array[1..4] of char;
lowseg: word;
unkw1: word;
unkw2: word;
flags1: word;
unk1: array [1..16] of byte;
int15port: word;
int67port: word;
unkw3: word;
unkw4: word;
unkd1: longint;
unkd2: longint;
sysconfig: word;
unk2: array [1..8] of byte;
flags2: word;
flags3: word;
flags4: word;
unkw5: word;
extfree: word;
unkd3: longint;
unkw6: word;
unkd4: longint;
flags5: word;
oldint21ofs: word;
oldint21seg: word;
emsofs: word;
emsseg: word;
extra: byte;
end;
var
V386maxbuf: T386maxbuf;
QEMMid: byte;
xword: word;
xbyte: byte;
xlong: longint;
foundit: boolean;
begin
Pause3(-3);
if endit then
Exit;
Caption1('----Memory Managers and Memory utilities----');
Writeln;
Caption2('QEMM');
with regs do
begin
QEMMid:=$D2;
foundit:=false;
repeat
AH:=QEMMId;
AL:=0;
BX:=$5144; {'QD'}
CX:=$4D45; {'ME'}
DX:=$4D30; {'M0'}
Intr($2F, regs);
if (AL = $FF) and (BX = $4D45) and (CX = $4D44) and (DX = $5652) then
foundit:=true
else
begin
if QEMMid < $FF then
Inc(QEMMid)
else
QEMMid:=$C0;
end;
until foundit or (QEMMid = $D2);
if not foundit then
Writeln('no')
else
begin
AH:=QEMMid;
AL:=1;
BX:=$5145; {'QE'}
CX:=$4D4D; {'MM'}
DX:=$3432; {'42'}
Intr($2F, regs);
if BX = $4F4B {'OK'} then
begin
Write('yes');
Caption3('API entry');
SegOfs(ES, DI);
xlong:=longint(ES) shl 16 + DI;
Caption3('version');
AH:=3;
longcall(xlong, regs);
if not nocarry(regs) then
Write('error')
else
Write(unBCD(BH), decimal, AddZero(unBCD(BL)));
xword:=BX;
Caption3('status');
AH:=0;
longcall(xlong, regs);
if not nocarry(regs) then
Write('error')
else
if AL and 1 = 1 then
Write('OFF')
else
if AL and 2 = 2 then
Write('Auto')
else
Write('ON');
Writeln;
Caption3('High RAM');
AH:=$12;
longcall(xlong, regs);
if not nocarry(regs) then
Write('error')
else
begin
yesorno2(BX <> 0);
if BX <> 0 then
begin
Caption3('first MCB at');
Write(Hex(BX, 4));
end;
end;
if Hi(xword) >= 6 then
begin
Caption3('Stealth');
AX:=$1E00;
longcall(xlong, regs);
if not nocarry(regs) then
Write('error')
else
begin
case CL of
0: Write('OFF');
$46: Write('Frame');
$4D: Write('Map')
else
Write('????');
end;
if (CL = $46) or (CL = $4D) then
begin
Caption3('Stealthed ROMs');
AX:=$1E01;
longcall(xlong, regs);
if not nocarry(regs) then
Write('error')
else
Write(BX);
end;
end;
end;
Writeln;
end
else
Writeln('no')
end;
Pause3(-1);
if endit then
Exit;
Caption2('Quarterdeck Manifest (memory resident)');
if not foundit then
Writeln('no')
else
begin
AH:=QEMMid;
AL:=1;
BX:=$4D41; {'MA'}
CX:=$4E49; {'NI'}
DX:=$4645; {'FE'}
Intr($2F, regs);
yesorno(BX = $5354 {'ST'